package app.entity;

import java.util.Date;

/**
 * @ClassName: IOTPBean
 * @Description: IOTP自定义协议 实体bean
 * @author 周西栋
 * @date 2018年5月7日
 *
 */
public class IOTPBean {

	/**
	 * 协议标签(字节长度为2)
	 * 固定值 0x1011
	 */
	private Integer tag = 0;
	/**
	 * 命令类型(字节长度为2)
	 * 数值说明
	 * 0 缺省值
	 * 1 采集数据消息
	 * 2 采集数据消息返回值
	 * 3 控制消息
	 * 4 控制消息返回值
	 * 5 配置消息
	 * 6 配置消息返回值
	 * 7 状态消息
	 * 8 状态消息返回值
	 * 9 查询配置信息
	 */
	private Integer type = 0;
	/**
	 * 源ID号(字节长度为4)
	 * 服务ID号
	 */
	private Integer source_id = 0;
	/**
	 * 源类型号(字节长度为4)
	 * 服务类型
	 */
	private Integer source_type = 0;
	/**
	 * 协议序列号(字节长度为4)
	 * 源端标识唯一ID，循环使用
	 */
	private Integer sequence_id = 0;
	/**
	 * 协议子序列号(字节长度为4)
	 * 默认0，当有多包连续数据时，从1开始增加，-1表示最后一个数据包
	 */
	private Integer sequence_sub_id = 0;
	/**
	 * 协议包生成时间(字节长度为8)
	 * 时间戳
	 */
	private Date date_time = new Date();
	
	/**
	 * 节点授权码(字节长度128)
	 * 由服务器端发起授权
	 */
	private String license = "";
	
	/**
	 * 协议体长度(字节长度为4)
	 * 最大值8192字节
	 */
	private Integer body_len = 0;
	/**
	 * 协议消息体(长度为body_len)
	 * 长度最长8192字节
	 */
	private IOTPBody body;
	/**
	 * 结束符(字节长度为2)
	 * 固定值 0x1213
	 */
	private Integer end = 0;

	
	
	@Override
	public String toString() {
		return "IOTPBean [tag=" + tag + ", type=" + type + ", source_id=" + source_id + ", source_type=" + source_type
				+ ", sequence_id=" + sequence_id + ", sequence_sub_id=" + sequence_sub_id + ", date_time=" + date_time
				+ ", license=" + license + ", body_len=" + body_len + ", body=" + body + ", end=" + end + "]";
	}



	public Integer getTag() {
		return tag;
	}



	public void setTag(Integer tag) {
		this.tag = tag;
	}



	public Integer getType() {
		return type;
	}



	public void setType(Integer type) {
		this.type = type;
	}



	public Integer getSource_id() {
		return source_id;
	}



	public void setSource_id(Integer source_id) {
		this.source_id = source_id;
	}



	public Integer getSource_type() {
		return source_type;
	}



	public void setSource_type(Integer source_type) {
		this.source_type = source_type;
	}



	public Integer getSequence_id() {
		return sequence_id;
	}



	public void setSequence_id(Integer sequence_id) {
		this.sequence_id = sequence_id;
	}



	public Integer getSequence_sub_id() {
		return sequence_sub_id;
	}



	public void setSequence_sub_id(Integer sequence_sub_id) {
		this.sequence_sub_id = sequence_sub_id;
	}



	public Date getDate_time() {
		return date_time;
	}



	public void setDate_time(Date date_time) {
		this.date_time = date_time;
	}



	public String getLicense() {
		return license;
	}



	public void setLicense(String license) {
		this.license = license;
	}



	public Integer getBody_len() {
		return body_len;
	}



	public void setBody_len(Integer body_len) {
		this.body_len = body_len;
	}



	public IOTPBody getBody() {
		return body;
	}



	public void setBody(IOTPBody body) {
		this.body = body;
	}



	public Integer getEnd() {
		return end;
	}



	public void setEnd(Integer end) {
		this.end = end;
	}
	
}
